package com.hu.utils.json;

import lombok.Data;

import java.util.List;

/**
 * @author .
 */
@Data
public class PageJson {
    public static final PageJson FAILURE = new PageJson(SimpleJson.FAILURE);
    public static final PageJson SUCCESS = new PageJson(SimpleJson.SUCCESS);
    public static final PageJson AUTHORITY_FAILURE = new PageJson(2, "权限不足", 0, null);
    public static final PageJson NO_LOGIN_FAILURE = new PageJson(3, "未登录", 0, null);
    /**
     * 0为成功
     */
    private int code = 0;
    /**
     * 返回的提示
     */
    private String msg = "";
    /**
     * 总条目
     */
    private long count = 0;
    /**
     * 数据列表
     */
    private List<?> data;

    public PageJson(int code, String msg, long count, List<?> data) {
        this.code = code;
        this.msg = msg;
        this.count = count;
        this.data = data;
    }


    public PageJson() {

    }

    public PageJson(List<?> data) {
        this(0, "", data.size(), data);
    }

    public PageJson(long count, List<?> data) {
        this(0, "", count, data);
    }

    public PageJson(SimpleJson json) {
        this(json.getCode(), json.getMsg(), 0, null);
    }

    public PageJson(SimpleJson json, List<?> data) {
        this(json.getCode(), json.getMsg(), data.size(), data);
    }

    public PageJson(String msg, List<?> data) {
        this(0, msg, data.size(), data);
    }


    public PageJson(SimpleJson json, long count, List<?> data) {
        this(json.getCode(), json.getMsg(), count, data);
    }

    public PageJson(String msg, long count, List<?> data) {
        this(0, msg, count, data);
    }

}
